#pragma once

BEGIN_ARETE_NAMESPACE(rendering)

	enum EWINDOW_FOCUS
{
	EWF_UNKNOWN,
	EWF_YES,
	EWF_NO
};

class AERenderingEngine
	: public Ogre::WindowEventListener
{
public:
	AERenderingEngine(void);
	~AERenderingEngine(void);

	void initialize(void);
	void takeScreenShot(void);

	Ogre::Root* getRoot(void);
	Ogre::RenderSystem* getRenderer(void);
	Ogre::RenderWindow* getWindow(void);
	Ogre::Timer* getTimer(void);
	Ogre::SceneManager* getSceneManager(void);

private:
	void initializeResouceGroups( void );
	void initializePlugins( void );
	void initializeRenderSubsytem( void );
	void initializeWindow( void );
	void setIcon(void);

	void windowFocusChange( Ogre::RenderWindow*);

	Ogre::Root* m_root;
	Ogre::RenderSystem* m_renderer;
	Ogre::RenderWindow* m_window;
	Ogre::Timer* m_timer;
	Ogre::SceneManager* m_scenemanager;

	EWINDOW_FOCUS m_has_focus;
};

END_ARETE_NAMESPACE